﻿package com.wongoing.sys.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.wongoing.base.BaseDao;
import com.wongoing.base.Mapper;
import com.wongoing.base.PageResult;
import com.wongoing.sys.model.SysFunction;
import com.wongoing.sys.model.ext.SysFunctionExt;
@Mapper
public interface SysFunctionDao extends BaseDao<SysFunction, Serializable>{
	/**
	 * 功能说明：获取功能列表分页数据
	 * 修改说明：
	 * @author zhenglibing,吴兆强
	 * @date 2017年10月13日 下午8:52:34
	 * @param params 查询参数
	 * @return 返回符合条件的功能记录集合
	 */
	public List<SysFunction> getFunctionListByParam(Map<String,Object> params);
	
	/**
	 * 功能说明：获取功能列表分页数据的总页数
	 * 修改说明：
	 * @author zhenglibing,吴兆强
	 * @date 2017年10月13日 下午8:53:34
	 * @param params 查询参数
	 * @return 返回符合条件的分页查询的总页数
	 */
	public Integer countOfFunctionListByParam(Map<String,Object> params);
	
	/**
	 * 功能说明：通过PageResult获取功能分页数据
	 * 修改说明：
	 * @author zhenglibing,吴兆强
	 * @date 2017年10月13日 下午8:54:19
	 * @param pageResult 分页查询对象，包含查询条件
	 * @return 返回分页查询对象，包含页面数据
	 */
	public PageResult<SysFunction> getFunctionListPageResult(PageResult<SysFunction> pageResult);
	
	/**
	 * 功能说明：根据用户ID获取权限列表字符串数据集
	 * 修改说明：
	 * @author 吴兆强
	 * @date 2018年3月16日 上午10:39:14
	 * @return
	 */
    public List<SysFunction> getByCustomerId(Map<String,Object> param);
	 
	/**
	 * 功能说明：根据用户名和状态查询权限项字符串列表
	 * 修改说明：
	 * @author zhenglibing,吴兆强
	 * @date 2017年10月13日 下午9:00:18
	 * @param account 查询参数：账户
	 * @param status 查询参数：状态
	 * @param type 查询参数：类型
	 * @return 返回符合条件的字符串集合
	 */
	public List<String> getSysIdByUserAccount(String account, String status, String type);
	
	/**
	 * 功能说明：获取权限列表（页面展示）
	 * 修改说明：
	 * @author zhenglibing,吴兆强
	 * @date 2017年10月13日 下午9:01:27
	 * @param status 查询参数：状态
	 * @return 返回符合条件的功能项扩展集合
	 */
	public List<SysFunctionExt> getFunctionListByParam(String status);
	
	/**
	 * 功能说明：各种菜单（树形控件）中使用的权限列表数据
	 * 修改说明：
	 * @author zhenglibing,吴兆强
	 * @date 2017年10月13日 下午9:02:29
	 * @param status 查询参数：状态
	 * @return 返回符合条件的功能项集合
	 */
	public List<SysFunction> getListByParamToMenu(Map<String,Object> param);
	
	/**
	 * 功能说明：根据角色ID获取权限
	 * 修改说明：
	 * @author zhenglibing,吴兆强
	 * @date 2017年10月13日 下午9:03:34
	 * @param PostId 查询参数：岗位Id
	 * @param status 查询参数：状态
	 * @return
	 */
	public List<SysFunction> getByPostId(Integer PostId, String status);
}
